	var matcurse = {};

	function MyHttpRequest(){
		try {
			objAjax = new XMLHttpRequest();
		} catch (trymicrosoft) {
			try {
				objAjax = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (othermicrosoft) {
				try {
					objAjax = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (failed) {
					objAjax = false;
				}
			}
		}
		return objAjax;
	}
	
	/*
		Modificando Todo
	*/
	var carga = {
		materias: new Array(),
		creditos_min: 30,
		creditos_max: 63,
		creditos_me: 0,
		creditos_re: 20,
		isFull: function(){
			if(this.creditos_me > this.creditos_max)
				return true;
			return false;
		},
		isSufficient: function(){
			if(this.creditos_me>=this.creditos_min)
				return true;
			return false;
		},
		isIn: function(element_new){
			for(element in this.materias){
				if(element_new.toUpperCase()==element.toUpperCase())
					return true;
				return false;
			}
		},
		addMeCurse: function(idMateria){
			//comprobamos
			if(this.isFull()){
				alert("Tu carga esta completa, finaliza tu registro por favor. Gracias.");
				return false;
			}
			if(this.isIn(idMateria))
				return false;
				
			curse = matcurse.curses[idMateria.toUpperCase()];
			//Agregamos
			var padre = $('materias_elejidas');
				var li = document.createElement("li")
					li.addClass("eleccion");
					li.id = "li" + curse.idmat;
					var divclose = document.createElement("div");
						divclose.addClass("close");
						var imgclose = document.createElement("img");
							imgclose.title = "Elimina la primera elección";
							imgclose.src = "css/images/close.png";
							imgclose.id = "img" + curse.idmat;
							imgclose.addEvent('click', function(){
								carga.removeMeCurse(this.id.substring(3));
							})
						divclose.appendChild(imgclose);
					var divnombre = document.createElement("div");
						divnombre.addClass("nombre");
							var spanid = document.createElement("span");
								spanid.appendChild(document.createTextNode("[ " + curse.idmat + " ]"))
							var spannombre = document.createElement("span");
								spannombre.appendChild(document.createTextNode(curse.nombre));
						divnombre.appendChild(spanid);
						divnombre.appendChild(spannombre);
					var divcaract = document.createElement("div");
						divcaract.addClass("caracteristicas");
						var divsemestre = document.createElement("div");
							divsemestre.addClass("semestre");
							divsemestre.appendChild(document.createTextNode("semestre: "));
							var spansemestre = document.createElement("span");
								spansemestre.appendChild(document.createTextNode(curse.semestre));
							divsemestre.appendChild(spansemestre);
						var divcredit = document.createElement("div");
							divcredit.addClass("creditos");
							divcredit.appendChild(document.createTextNode("creditos: "));
							var spancreditos = document.createElement("span");
								spancreditos.appendChild(document.createTextNode(curse.creditos));
							divcredit.appendChild(spancreditos);
						divcaract.appendChild(divsemestre);
						divcaract.appendChild(divcredit);
					li.appendChild(divclose);
					li.appendChild(divnombre);
					li.appendChild(divcaract);
			padre.appendChild(li);

			//guardamos
			this.creditos_me+=parseInt(curse.creditos);
			this.materias.push(curse.idmat);
			$('totalm').innerHTML = "Total: " + this.materias.length;
			//finalizamos
			return true;
		},
		removeMeCurse: function(idMateria){
			curse = matcurse.curses[idMateria.toUpperCase()];
			this.creditos_me-=parseInt(curse.creditos);
			var element = $("li"+idMateria).getParent();
				element.removeChild($("li"+idMateria));
			$(curse.idmat).removeClass('hide');
			carga.materias.splice(carga.materias.indexOf(idMateria),1);
			$('totalm').innerHTML = "Total: " + this.materias.length;
		},
		clear: function(){
			this.creditos_me=0;
			this.materias = new Array();
			$('materias_elejidas').innerHTML = "";
			$('totalm').innerHTML = "Total: " + this.materias.length;
		}
	}
	
	function addMateria(curse){
		var padre = $('materias');
			var li = document.createElement("li");
				li.id=curse.idmat;
 				var divnombre = document.createElement("div");
					divnombre.className = "nombre";
						var span1 = document.createElement("span");
							span1.appendChild(document.createTextNode("[" + curse.idmat + "]"));
							span1.addClass('idmat');
						divnombre.appendChild(span1);
						var span1a = document.createElement("span");
							span1a.appendChild(document.createTextNode(curse.nombre));
							span1a.id = curse.idmat + '_nombre';
						divnombre.appendChild(span1a);
 				li.appendChild(divnombre);
				var divcaract = document.createElement("div");
					divcaract.className = "caracteristicas";
					var divsemestre = document.createElement("div");
						divsemestre.appendChild(document.createTextNode("semestre: "));
						var span2 = document.createElement("span");
							span2.appendChild(document.createTextNode(curse.semestre));
							span2.id = curse.idmat + '_semestre';
						divsemestre.appendChild(span2);
					divcaract.appendChild(divsemestre);
					var divcredit = document.createElement("div");
						divcredit.appendChild(document.createTextNode("creditos: "));
						var span3 = document.createElement("span");
							span3.appendChild(document.createTextNode(curse.creditos));
							span3.id = curse.idmat + '_creditos';
						divcredit.appendChild(span3);
					divcaract.appendChild(divcredit);
				li.appendChild(divcaract);
				li.addEvent('click', function(){
					if(carga.addMeCurse(this.id))
						this.addClass('hide');
				});
		padre.appendChild(li);
	}

	
	/*
		Clase matcurse contiene todos los cursos de verano
			
		by lesthack@gmail.com
	*/
	matcurse.curses = new Array();
	
	matcurse.loadCurses = function(){
		objAjax = MyHttpRequest();
		objAjax.open("GET", "items/materias.php?numcontrol="+arguments[0]+"&idespecialidad="+arguments[1]+"&semestre="+arguments[2]);
		objAjax.onreadystatechange = function(){
			if (objAjax.readyState==4) {
				temp = objAjax.responseXML;
				materias = temp.getElementsByTagName("materia");
				for(var i=0;i<materias.length;i++){
					var curse = {};
						curse.idesp = materias[i].getElementsByTagName("idespecialidad")[0].firstChild.nodeValue;
						curse.idmat = materias[i].getElementsByTagName("idmateria")[0].firstChild.nodeValue;
						curse.nombre = materias[i].getElementsByTagName("nombre")[0].firstChild.nodeValue;
						curse.semestre = materias[i].getElementsByTagName("semestre")[0].firstChild.nodeValue;
						curse.creditos = materias[i].getElementsByTagName("creditos")[0].firstChild.nodeValue;
					addMateria(curse);
					matcurse.curses[curse.idmat] = curse;
				}
			}
		};
		objAjax.send(null);
	}


	
	
